<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Rotary encoder</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Rotary_encoder"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Rotary_encoder rootpage-Rotary_encoder skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Rotary encoder</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p>A <b>rotary encoder</b>, also called a <b>shaft encoder</b>, is an <a href="Electro-mechanical" class="mw-redirect" title="Electro-mechanical">electro-mechanical</a> device that converts the <a href="Angle" title="Angle">angular</a> position or motion of a shaft or axle to <a href="Analog_signal" title="Analog signal">analog</a> or <a href="Digital_signal" title="Digital signal">digital</a> output signals.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>There are two main types of rotary encoder: absolute and incremental. The output of an absolute encoder indicates the current shaft position, making it an <a href="Transducer" title="Transducer">angle transducer</a>. The output of an incremental encoder provides information about the <i>motion</i> of the shaft, which typically is processed elsewhere into information such as position, speed and distance.
</p><p>Rotary encoders are used in a wide range of applications that require monitoring or control, or both, of mechanical systems, including industrial controls, <a href="Robotics" title="Robotics">robotics</a>, <a href="Photographic_lens" class="mw-redirect" title="Photographic lens">photographic lenses</a>,<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> computer input devices such as optomechanical <a href="Computer_mouse" title="Computer mouse">mice</a> and <a href="Trackball" title="Trackball">trackballs</a>, controlled stress <a href="Rheometers" class="mw-redirect" title="Rheometers">rheometers</a>, and rotating <a href="Radar" title="Radar">radar</a> platforms.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Technologies">Technologies</h2></div>
<ul><li><b>Mechanical</b>: Also known as conductive encoders. A series of circumferential copper tracks etched onto a PCB is used to encode the information via contact brushes sensing the conductive areas. Mechanical encoders are economical but susceptible to mechanical wear. They are common in human interfaces such as <a href="Digital_multimeter" class="mw-redirect" title="Digital multimeter">digital multimeters</a>.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup></li>
<li><b>Optical</b>: This uses a light shining onto a <a href="Photodiode" title="Photodiode">photodiode</a> through slits in a disc, commonly metal, glass, or plastic. Reflective versions also exist. This is one of the most common technologies. Optical encoders are very sensitive to dust.</li>
<li><b>On-Axis Magnetic</b>: This technology typically uses a specially magnetized 2 pole neodymium magnet attached to the motor shaft. Because it can be fixed to the end of the shaft, it can work with motors that only have 1 shaft extending out of the motor body. The accuracy can vary from a few degrees to under 1 degree. Resolutions can be as low as 1 degree or as high as 0.09 degree (4000 CPR, Count per Revolution).<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Poorly designed internal interpolation can cause output jitter, but this can be overcome with internal sample averaging.</li>
<li><b>Off-Axis Magnetic</b>: This technology typically employs the use of rubber bonded ferrite magnets attached to a metal hub. This offers flexibility in design and low cost for custom applications. Due to the flexibility in many off axis encoder chips they can be programmed to accept any number of pole widths so the chip can be placed in any position required for the application. Magnetic encoders operate in harsh environments where optical encoders would fail to work.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Basic_types">Basic types</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Absolute">Absolute</h3></div>
<p>An <b>absolute encoder</b> maintains position information when power is removed from the encoder.<sup id="cite_ref-absolute1_5-0" class="reference"><a href="#cite_note-absolute1-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> The position of the encoder is available immediately on applying power. The relationship between the encoder value and the physical position of the controlled machinery is set at assembly; the system does not need to return to a calibration point to maintain position accuracy.
</p><p>An absolute encoder has multiple code rings with various binary weightings which provide a <a href="Data_word" class="mw-redirect" title="Data word">data word</a> representing the absolute position of the encoder within one revolution. This type of encoder is often referred to as a parallel absolute encoder.<sup id="cite_ref-mitch_5000_6-0" class="reference"><a href="#cite_note-mitch_5000-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>A multi-turn absolute rotary encoder includes additional code wheels and toothed wheels. A high-resolution wheel measures the fractional rotation, and lower-resolution geared code wheels record the number of whole revolutions of the shaft.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Incremental">Incremental</h3></div>
<p>An <a href="Incremental_encoder" title="Incremental encoder">incremental encoder</a> will immediately report changes in position, which is an essential capability in some applications. However, it does not report or keep track of absolute position. As a result, the mechanical system monitored by an incremental encoder may have to be <a href="Homing_(mechanical)" class="mw-redirect" title="Homing (mechanical)">homed</a> (moved to a fixed reference point) to initialize absolute position measurements.
</p>
<div class="mw-heading mw-heading2"><h2 id="Absolute_encoder">Absolute encoder</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Absolute_rotary_encoder">Absolute rotary encoder</h3></div>
<div class="mw-heading mw-heading4"><h4 id="Construction">Construction</h4></div>
<p>Digital absolute encoders produce a unique digital code for each distinct angle of the shaft. They come in two basic types: optical and mechanical.
</p>
<div class="mw-heading mw-heading4"><h4 id="Mechanical_absolute_encoders">Mechanical absolute encoders</h4></div>
<p>A metal disc containing a set of concentric rings of openings is fixed to an insulating disc, which is rigidly fixed to the shaft. A row of sliding contacts is fixed to a stationary object so that each contact wipes against the metal disc at a different distance from the shaft. As the disc rotates with the shaft, some of the contacts touch metal, while others fall in the gaps where the metal has been cut out. The metal sheet is connected to a source of <a href="Electric_current" title="Electric current">electric current</a>, and each contact is connected to a separate electrical sensor. The metal pattern is designed so that each possible position of the axle creates a unique <a href="Binary_code" title="Binary code">binary code</a> in which some of the contacts are connected to the current source (i.e. switched on) and others are not (i.e. switched off).
</p><p>Brush-type contacts are susceptible to wear, and consequently mechanical encoders are typically found in low-speed applications such as manual volume or tuning controls in a radio receiver.
</p>
<div class="mw-heading mw-heading4"><h4 id="Optical_absolute_encoders">Optical absolute encoders</h4></div>
<p>The optical encoder's disc is made of glass or plastic with transparent and opaque areas. A light source and photo detector array reads the optical pattern that results from the disc's position at any one time.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
The <a href="Gray_code" title="Gray code">Gray code</a> is often used.
This code can be read by a controlling device, such as a <a href="Microprocessor" title="Microprocessor">microprocessor</a> or microcontroller to determine the angle of the shaft.
</p><p>The absolute analog type produces a unique dual analog code that can be translated into an absolute angle of the shaft.
</p>
<div class="mw-heading mw-heading4"><h4 id="Magnetic_absolute_encoders">Magnetic absolute encoders</h4></div>
<p>The magnetic encoder uses a series of magnetic poles (2 or more) to represent the encoder position to a magnetic sensor (typically magneto-resistive or Hall Effect). The magnetic sensor reads the magnetic pole positions.
</p><p>This code can be read by a controlling device, such as a <a href="Microprocessor" title="Microprocessor">microprocessor</a> or microcontroller to determine the angle of the shaft, similar to an optical encoder.
</p><p>The absolute analog type produces a unique dual analog code that can be translated into an absolute angle of the shaft (by using a special algorithm).
</p><p>Due to the nature of recording magnetic effects, these encoders may be optimal to use in conditions where other types of encoders may fail due to dust or debris accumulation. Magnetic encoders are also relatively insensitive to vibrations, minor misalignment, or shocks.
</p>
<dl><dt>Brushless motor commutation</dt></dl>
<p>Built-in rotary encoders are used to indicate the angle of the motor shaft in permanent magnet <a href="Brushless_motor" class="mw-redirect" title="Brushless motor">brushless motors</a>, which are commonly used on <a href="CNC" class="mw-redirect" title="CNC">CNC</a> machines, <a href="Robot" title="Robot">robots</a>, and other industrial equipment. In such cases, the encoder serves as a feedback device that plays a vital role in proper equipment operation. Brushless motors require electronic commutation, which often is implemented in part by using rotor magnets as a low-resolution absolute encoder (typically six or twelve pulses per revolution). The resulting shaft angle information is conveyed to the servo drive to enable it to energize the proper stator winding at any moment in time.
</p>
<div class="mw-heading mw-heading4"><h4 id="Capacitive_absolute_encoders">Capacitive absolute encoders</h4></div>
<p>An asymmetrical shaped disc is rotated within the encoder. This disc will change the <a href="Capacitance" title="Capacitance">capacitance</a> between two electrodes which can be measured and calculated back to an angular value.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Absolute_multi-turn_encoder">Absolute multi-turn encoder</h3></div>
<p>A multi-turn encoder can detect and store more than one revolution. The term absolute multi-turn encoder is generally used if the encoder will detect movements of its shaft even if the encoder is not provided with external power.
</p>
<div class="mw-heading mw-heading4"><h4 id="Battery-powered_multi-turn_encoder">Battery-powered multi-turn encoder</h4></div>
<p>This type of encoder uses a battery for retaining the counts across power cycles. It uses energy conserving electrical design to detect the movements.
</p>
<div class="mw-heading mw-heading4"><h4 id="Geared_multi-turn_encoder">Geared multi-turn encoder</h4></div>
<p>These encoders use a train of gears to mechanically store the number of revolutions. The position of the single gears is detected with one of the above-mentioned technologies.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Self-powered_multi-turn_encoder">Self-powered multi-turn encoder</h4></div>
<p>These encoders use the principle of <a href="Energy_harvesting" title="Energy harvesting">energy harvesting</a> to generate energy from the moving shaft. This principle, introduced in 2007,<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> uses a <a href="Wiegand_effect" title="Wiegand effect">Wiegand sensor</a> to produce electricity sufficient to power the encoder and write the turns count to non-volatile memory.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Ways_of_encoding_shaft_position">Ways of encoding shaft position</h3></div>
<div class="mw-heading mw-heading4"><h4 id="Standard_binary_encoding">Standard binary encoding</h4></div>
<p>An example of a binary code, in an extremely simplified encoder with only three contacts, is shown below.
</p>
<table class="wikitable" style="text-align:center">
<caption>Standard Binary Encoding
</caption>
<tbody><tr>
<th>Sector</th>
<th>Contact 1</th>
<th>Contact 2</th>
<th>Contact 3</th>
<th>Angle
</th></tr>
<tr>
<td>0</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ffcccc">off</td>
<td>0° to 45°
</td></tr>
<tr>
<td>1</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ccffcc">ON</td>
<td>45° to 90°
</td></tr>
<tr>
<td>2</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ffcccc">off</td>
<td>90° to 135°
</td></tr>
<tr>
<td>3</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ccffcc">ON</td>
<td>135° to 180°
</td></tr>
<tr>
<td>4</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ffcccc">off</td>
<td>180° to 225°
</td></tr>
<tr>
<td>5</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ccffcc">ON</td>
<td>225° to 270°
</td></tr>
<tr>
<td>6</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ffcccc">off</td>
<td>270° to 315°
</td></tr>
<tr>
<td>7</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ccffcc">ON</td>
<td>315° to 360°
</td></tr></tbody></table>
<p>In general, where there are <i>n</i> contacts, the number of distinct positions of the shaft is 2<sup><i>n</i></sup>. In this example, <i>n</i> is 3, so there are 2³ or 8 positions.
</p><p>In the above example, the contacts produce a standard binary count as the disc rotates. However, this has the drawback that if the disc stops between two adjacent sectors, or the contacts are not perfectly aligned, it can be impossible to determine the angle of the shaft. To illustrate this problem, consider what happens when the shaft angle changes from 179.9° to 180.1° (from sector 3 to sector 4). At some instant, according to the above table, the contact pattern changes from off-on-on to on-off-off. However, this is not what happens in reality. In a practical device, the contacts are never perfectly aligned, so each switches at a different moment. If contact 1 switches first, followed by contact 3 and then contact 2, for example, the actual sequence of codes is:
</p>
<dl><dd>off-on-on (starting position)</dd>
<dd>on-on-on (first, contact 1 switches on)</dd>
<dd>on-on-off (next, contact 3 switches off)</dd>
<dd>on-off-off (finally, contact 2 switches off)</dd></dl>
<p>Now look at the sectors corresponding to these codes in the table. In order, they are 3, 7, 6 and then 4. So, from the sequence of codes produced, the shaft appears to have jumped from sector 3 to sector 7, then gone backwards to sector 6, then backwards again to sector 4, which is where we expected to find it. In many situations, this behaviour is undesirable and could cause the system to fail. For example, if the encoder were used in a robot arm, the controller would think that the arm was in the wrong position, and try to correct the error by turning it through 180°, perhaps causing damage to the arm.
</p>
<div class="mw-heading mw-heading4"><h4 id="Gray_encoding">Gray encoding</h4></div>
<p>To avoid the above problem, <a href="Gray_code" title="Gray code">Gray coding</a> is used. This is a system of binary counting in which any two adjacent codes differ by only one bit position. For the three-contact example given above, the Gray-coded version would be as follows.
</p>
<table class="wikitable" style="text-align:center">
<caption>Gray Coding
</caption>
<tbody><tr>
<th>Sector</th>
<th>Contact 1</th>
<th>Contact 2</th>
<th>Contact 3</th>
<th>Angle
</th></tr>
<tr>
<td>0</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ffcccc">off</td>
<td>0° to 45°
</td></tr>
<tr>
<td>1</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ccffcc">ON</td>
<td>45° to 90°
</td></tr>
<tr>
<td>2</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ccffcc">ON</td>
<td>90° to 135°
</td></tr>
<tr>
<td>3</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ffcccc">off</td>
<td>135° to 180°
</td></tr>
<tr>
<td>4</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ffcccc">off</td>
<td>180° to 225°
</td></tr>
<tr>
<td>5</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ccffcc">ON</td>
<td>225° to 270°
</td></tr>
<tr>
<td>6</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ccffcc">ON</td>
<td>270° to 315°
</td></tr>
<tr>
<td>7</td>
<td bgcolor="#ccffcc">ON</td>
<td bgcolor="#ffcccc">off</td>
<td bgcolor="#ffcccc">off</td>
<td>315° to 360°
</td></tr></tbody></table>
<p>In this example, the transition from sector 3 to sector 4, like all other transitions, involves only one of the contacts changing its state from on to off or vice versa. This means that the sequence of incorrect codes shown in the previous illustration cannot happen.
</p>
<div class="mw-heading mw-heading4"><h4 id="Single-track_Gray_encoding">Single-track Gray encoding</h4></div>
<p>If the designer moves a contact to a different angular position (but at the same distance from the center shaft), then the corresponding "ring pattern" needs to be rotated the same angle to give the same output. If the most significant bit (the inner ring in Figure 1) is rotated enough, it exactly matches the next ring out. Since both rings are then identical, the inner ring can be omitted, and the sensor for that ring moved to the remaining, identical ring (but offset at that angle from the other sensor on that ring). Those two sensors on a single ring make a quadrature encoder with a single ring.
</p><p>It is possible to arrange several sensors around a single track (ring) so that consecutive positions differ at only a single sensor; the result is the <a href="Single-track_Gray_code" class="mw-redirect" title="Single-track Gray code">single-track Gray code</a> encoder.
</p>
<div class="mw-heading mw-heading3"><h3 id="Data_output_methods">Data output methods</h3></div>
<p>Depending on the device and manufacturer, an absolute encoder may use any of several signal types and communication protocols to transmit data, including parallel binary, <a href="Analog_signal" title="Analog signal">analog signals</a> (current or voltage), and serial bus systems such as <a href="Synchronous_Serial_Interface" title="Synchronous Serial Interface">SSI</a>, <a href="BiSS_interface" title="BiSS interface">BiSS</a>, <a href="Heidenhain" title="Heidenhain">Heidenhain</a> EnDat, <a href="Sick-Stegmann" class="mw-redirect" title="Sick-Stegmann">Sick-Stegmann</a> Hiperface, <a href="DeviceNet" title="DeviceNet">DeviceNet</a>, <a href="Modbus" title="Modbus">Modbus</a>, <a href="Profibus" title="Profibus">Profibus</a>, <a href="CANopen" title="CANopen">CANopen</a> and <a href="EtherCAT" title="EtherCAT">EtherCAT</a>, which typically employ <a href="Ethernet" title="Ethernet">Ethernet</a> or RS-422/RS-485 physical layers.
</p>
<div class="mw-heading mw-heading2"><h2 id="Incremental_encoder">Incremental encoder</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Incremental_encoder" title="Incremental encoder">Incremental encoder</a></div>
<p>The rotary <a href="Incremental_encoder" title="Incremental encoder">incremental encoder</a> is the most widely used of all rotary encoders due to its ability to provide real-time position information. The measurement resolution of an incremental encoder is not limited in any way by its two internal, incremental movement sensors; one can find in the market incremental encoders with up to 10,000 counts per revolution, or more.
</p><p>Rotary incremental encoders report position changes without being prompted to do so, and they convey this information at data rates which are orders of magnitude faster than those of most types of absolute shaft encoders. Because of this, incremental encoders are commonly used in applications that require precise measurement of position and velocity.
</p><p>A rotary incremental encoder may use mechanical, optical or magnetic sensors to detect rotational position changes. The mechanical type is commonly employed as a manually operated "digital potentiometer" control on electronic equipment. For example, modern home and car stereos typically use mechanical rotary encoders as volume controls. Encoders with mechanical sensors require switch <a href="Debouncing" class="mw-redirect" title="Debouncing">debouncing</a> and consequently are limited in the rotational speeds they can handle. The optical type is used when higher speeds are encountered or a higher degree of precision is required.
</p><p>A rotary incremental encoder has two output signals, A and B, which issue a periodic digital waveform in quadrature when the encoder shaft rotates. This is similar to sine encoders, which output sinusoidal waveforms in quadrature (i.e., sine and cosine),<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> thus combining the characteristics of an encoder and a <a href="Resolver_(electrical)" title="Resolver (electrical)">resolver</a>. The waveform frequency indicates the speed of shaft rotation and the number of pulses indicates the distance moved, whereas the A-B phase relationship indicates the direction of rotation.
</p><p>Some rotary incremental encoders have an additional "index" output (typically labeled Z), which emits a pulse when the shaft passes through a particular angle. Once every rotation, the Z signal is asserted, typically always at the same angle, until the next AB state change. This is commonly used in radar systems and other applications that require a registration signal when the encoder shaft is located at a particular reference angle.
</p><p>Unlike absolute encoders, an incremental encoder does not keep track of, nor do its outputs indicate the absolute position of the mechanical system to which it is attached. Consequently, to determine the absolute position at any particular moment, it is necessary to "track" the absolute position with an <a href="Incremental_encoder_interface" class="mw-redirect" title="Incremental encoder interface">incremental encoder interface</a> which typically includes a bidirectional electronic counter.
</p><p>Inexpensive incremental encoders are used in <a href="Computer_mouse#Mechanical_mice" title="Computer mouse">mechanical computer mice</a>. Typically, two encoders are used: one to sense left-right motion and another to sense forward-backward motion.
</p>
<div class="mw-heading mw-heading3"><h3 id="Rotary_(Angle)_Pulse_Encoder">Rotary (Angle) Pulse Encoder</h3></div>
<p>A Rotary (Angle) Pulse Encoder has a SPDT switch for each direction, with each one only operating in the direction of travel. Each turn indent in one direction causes the SPDT switch associated with that direction only to toggle.
</p>
<div class="mw-heading mw-heading3"><h3 id="Other_pulse-output_rotary_encoders">Other pulse-output rotary encoders</h3></div>
<p>Rotary encoders with a single output (i.e. <a href="Tachometer" title="Tachometer">tachometers</a>) cannot be used to sense direction of motion but are suitable for measuring speed and for measuring position when the direction of travel is constant. In certain applications they may be used to measure distance of motion (e.g. feet of movement).
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li>Analogue devices that perform a similar function include the <a href="Synchro" title="Synchro">synchro</a>, the <a href="Resolver_(electrical)" title="Resolver (electrical)">resolver</a>, the <a href="Rotary_variable_differential_transformer" title="Rotary variable differential transformer">rotary variable differential transformer</a> (RVDT), and the <a href="Rotary_potentiometer" class="mw-redirect" title="Rotary potentiometer">rotary potentiometer</a>.</li>
<li>A <a href="Linear_encoder" title="Linear encoder">linear encoder</a> is similar to a rotary encoder, but measures position or motion in a straight line, rather than rotation. Linear encoders often use incremental encoding and are used in many machine tools.</li>
<li><a href="Rotary_switch" title="Rotary switch">Rotary switch</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFMurray2019" class="citation web cs1">Murray, Mike (15 December 2019). <a rel="nofollow" class="external text" href="https://www.thegeekpub.com/245407/how-rotary-encoders-work-electronics-basics/">"How Rotary Encoders Work"</a>. <i>The Geek Pub</i><span class="reference-accessdate">. Retrieved <span class="nowrap">3 September</span> 2019</span>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20131005090254/http://www.canon.com/bctv/faq/rotary.html">"New - Rotary Encoder"</a>. Archived from <a rel="nofollow" class="external text" href="http://www.canon.com/bctv/faq/rotary.html">the original</a> on 2013-10-05.</cite> Canon video camera lens, used for zoom and aperture control</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.digikey.com/en/articles/techzone/2012/apr/a-designers-guide-to-encoders">"A Designer's Guide to Encoders"</a>. <i>digikey.com</i>. 19 April 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">23 November</span> 2019</span>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://massmind.ecomorder.com/techref/io/sensor/pos/enc/ENC2.htm">"MassMind Magnetic High Speed Non-Contact Quadrature Encoder V2"</a>. <i>MassMind.org</i>. 10 January 2018<span class="reference-accessdate">. Retrieved <span class="nowrap">12 July</span> 2019</span>.</cite></span>
</li>
<li id="cite_note-absolute1-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-absolute1_5-0">^</a></b></span> <span class="reference-text">Eitel, Elisabeth. <a rel="nofollow" class="external text" href="http://machinedesign.com/sensors/basics-rotary-encoders-overview-and-new-technologies-0">Basics of rotary encoders: Overview and new technologies</a> | Machine Design Magazine, 7 May 2014. Accessed: 30 June 2014</span>
</li>
<li id="cite_note-mitch_5000-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-mitch_5000_6-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.mitchell-electronics.com/downloads/Catalog_PriceList/TI5000EXManual.pdf">TI-5000EX Serial/Incremental Encoder Test System User Manual</a>, Mitchell Electronics, Inc.</span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text">G. K. McMillan, D.M. Considine (ed.) <i>Process Instruments and Controls Handbook Fifth Edition</i>, McGraw Hill 1999, <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-07-012582-7</bdi>, page 5.26</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://irtfweb.ifa.hawaii.edu/~tcs3/tcs3/0306_conceptual_design/Docs/05_Encoders/encoder_primer.pdf">"encoders"</a> <span class="cs1-format">(PDF)</span>. p. 12<span class="reference-accessdate">. Retrieved <span class="nowrap">20 February</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.gmc-camillebauer.com/pic/DM-2W2_SSI_KIN-WB__02-000405-3-L.pdf">"Capacitive Absolute Encoder"</a> <span class="cs1-format">(PDF)</span>. Camille Bauer<span class="reference-accessdate">. Retrieved <span class="nowrap">20 February</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite id="CITEREFRobert" class="citation web cs1">Robert, Repas. <a rel="nofollow" class="external text" href="http://machinedesign.com/article/multi-turn-absolute-encoders-0412">"Multi-turn absolute encoders"</a>. <i>machinedesign.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">20 February</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.motioncontrol.co.za/news.aspx?pklnewsid=24901">"New technology yields encoder that never forgets"</a>. <i>journal</i>. www.motioncontrol.co.za. 2007<span class="reference-accessdate">. Retrieved <span class="nowrap">20 February</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.posital.com/media/posital_media/documents/Magnetic_Encoders.pdf">"White Paper Magnetic Encoder"</a> <span class="cs1-format">(PDF)</span>. FRABA Inc. p. 3<span class="reference-accessdate">. Retrieved <span class="nowrap">13 February</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite id="CITEREFCollins" class="citation web cs1">Collins, Danielle. <a rel="nofollow" class="external text" href="https://www.motioncontroltips.com/what-is-a-sine-encoder-aka-sine-cosine-encoder/">"What is a sine encoder (aka sine-cosine encoder)?"</a>. Design World<span class="reference-accessdate">. Retrieved <span class="nowrap">19 August</span> 2020</span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFWinder1959" class="citation journal cs1">Winder, C. Farrell (October 1959). <a rel="nofollow" class="external text" href="https://www.americanradiohistory.com/Archive-Tele-Tech/50s/Electronic-Industries-1959-10.pdf">"Shaft Angle Encoders Afford High Accuracy"</a> <span class="cs1-format">(PDF)</span>. <i><a href="Electronic_Industries_(journal)" class="mw-redirect" title="Electronic Industries (journal)">Electronic Industries</a></i>. <b>18</b> (10). <a href="Chilton_Company" title="Chilton Company">Chilton Company</a>: <span class="nowrap">76–</span>80<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-01-14</span></span>.</cite></li>
<li><cite class="citation book cs1"><a rel="nofollow" class="external text" href="http://everyspec.com/MIL-HDBK/MIL-HDBK-0200-0299/download.php?spec=MIL_HDBK_231A.1809.pdf"><i>Military Handbook: Encoders - Shaft Angle To Digital</i></a> <span class="cs1-format">(PDF)</span>. <a href="United_States_Department_of_Defense" title="United States Department of Defense">United States Department of Defense</a>. 1991-09-30. MIL-HDBK-231A. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200725051128/http://everyspec.com/MIL-HDBK/MIL-HDBK-0200-0299/download.php?spec=MIL_HDBK_231A.1809.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2020-07-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-07-25</span></span>.</cite> (NB. Supersedes MIL-HDBK-231(AS) (1970-07-01).)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */
.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1237033735">
/* start https://en.wikipedia.org/ */
@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-en-v2.svg"]{background-color:white}}
/* end https://en.wikipedia.org/ */
</style><div class="side-box side-box-right sistersitebox"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style>
<div class="side-box-flex">
<div class="side-box-image"><span class="noviewer" typeof="mw:File"></span></div>
<div class="side-box-text plainlist">Wikimedia Commons has media related to <span style="font-weight: bold; font-style: italic;"><a href="https://commons.wikimedia.org/wiki/Category:Rotary_encoders" class="extiw external" title="commons:Category:Rotary encoders">Rotary encoders</a></span>.</div></div>
</div>
<ul><li><a rel="nofollow" class="external text" href="http://smallformfactors.mil-embedded.com/article-id/?3039=">"Choosing a code wheel: A detailed look at how encoders work"</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220522143245/http://smallformfactors.mil-embedded.com/article-id/?3039=">Archived</a> 2022-05-22 at the <a href="Wayback_Machine" title="Wayback Machine">Wayback Machine</a> article by Steve Trahey 2008-03-25 describes "rotary encoders".</li>
<li><a rel="nofollow" class="external text" href="https://www.embedded.com/encoders-provide-a-sense-of-place/">"Encoders provide a sense of place"</a> article by Jack Ganssle 2005-07-19 describes "nonlinear encoders".</li>
<li><a rel="nofollow" class="external text" href="http://www.societyofrobots.com/sensors_encoder.shtml">"Robot Encoders"</a>.</li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110717090211/http://www.embedded.com.au/pages/Motor_Interface.html">Introductory Tutorial</a> on PWM and Quadrature Encoding.</li>
<li><a rel="nofollow" class="external text" href="http://revotics.com/articles/understanding-quadrature-encoding">Revotics - Understanding Quadrature Encoding</a> - Covers details of rotary and quadrature encoding with a focus on robotic applications.</li>
<li><a rel="nofollow" class="external text" href="http://howtomechatronics.com/tutorials/arduino/rotary-encoder-works-use-arduino/">How Rotary Encoder Works</a> - Video explanation how rotary encoder works, plus how to use it with an Arduino microcontroller.</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-03-26" href="https://en.wikipedia.org/wiki/?title=Rotary_encoder&oldid=1282393490">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>